As the use of mobile devices and removable media increases, there is a need to improve the performance of memory and data management using these devices. A memory source that has been widely adopted for mobile devices is flash memory. Flash memory utilizes a multi-level cell structure to store data using a level of electrical charge placed on the gate of each cell. Flash memory presently is primarily implemented as a NOR type device or a NAND type device. A NAND type flash memory uses tunnel injection and release for writing and erasing of data for each cell. NAND flash is preferred for many mobile devices and applications as NAND flash has faster access and write times and lower per-bit cost than NOR type flash, and has a longer life than NOR flash devices. NAND type flash only allows sequential access to data, however, which makes it useful for devices such as memory cards and portable devices, but not as useful for multiple application or multi-user memory.
As applications such as increasingly complex and powerful multimedia-based applications are being deployed on these mobile and embedded devices, it also becomes necessary to improve the way that complex data is managed, as well as the way in which standardization and platform independence is achieved. One approach often used to improve data management is to utilize a database management system (DBMS). A DBMS typically is used to manage the storage and retrieval of data from at least one database. Each database can have associated therewith a relational model or schema that defines the organization of that data in the respective database. The DBMS can be used to optimize data structures for volatile or persistent storage devices, and can further allow authorized and authenticated users to query each database managed thereby. A DBMS also can ensure data integrity by managing transactions for multiple concurrent users. Present DBMS technologies, however, are generally designed to run on top of disk-based non-volatile storage media, and due to the nature of these disk-based storage mechanisms the storage methods inherently have inefficiencies when running on NAND-type flash memory based nonvolatile storage.
One reason for this inefficiency is the special characteristic of NAND type flash-memory wherein erase operations, which are relatively slow, must occur on a block or collection of pages prior to the in-place updating of data on one of those pages. This creates a significant overhead for I/O operations. Such characteristics thus do not allow for efficient use of a DBMS or other data management system on a device such as a NAND-type flash memory device.